package Singleton;

/**
 * @author Jimmy Zhan WORKSTATION
 * @since 2023/7/18 19:14
 * 说明：
 *      特性：JVM在加载外部类的过程中，是不会主动加载静态内部类的
 *      只有内部类的属性/方法被调用的时候才会被加载，并初始化其静态属性。
 *      属性由于被static修饰，保证只实例化一次，并且严格保证实例化顺序
 */

public class _06_Lazy_DoubleCheck_Block {
    // 1. 私有化构造方法
    private _06_Lazy_DoubleCheck_Block(){};

    // 静态内部类
    private static class SingletonHolder {
        private static final _06_Lazy_DoubleCheck_Block INSTANCE = new _06_Lazy_DoubleCheck_Block();
    }

    // 对外的public接口
    public static _06_Lazy_DoubleCheck_Block getInstance() {
        return SingletonHolder.INSTANCE;
    }

}
